package com.zbkj.crmeb.pdd.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.common.PageParamRequest;
import com.github.pagehelper.PageInfo;
import com.pdd.pop.sdk.http.api.pop.response.PddGoodsAuthorizationCatsResponse;
import com.pdd.pop.sdk.http.api.pop.response.PddGoodsCatRuleGetResponse;
import com.pdd.pop.sdk.http.api.pop.response.PddGoodsCountryGetResponse;
import com.pdd.pop.sdk.http.api.pop.response.PddGoodsLogisticsTemplateGetResponse;
import com.pdd.pop.sdk.http.api.pop.response.PddGoodsSpecGetResponse;
import com.pdd.pop.sdk.http.api.pop.response.PddGoodsSpecIdGetResponse;
import com.zbkj.crmeb.pdd.model.PddAccount;
import com.zbkj.crmeb.pdd.request.PddAccountRequest;
import com.zbkj.crmeb.pdd.request.SyPddGoodsAddRequest;
import com.zbkj.crmeb.pdd.response.PddAccountResponse;

/**
 * 拼多多账号
 * @author daigb
 * @date:  2022-11-14 14:31
 */
public interface PddAccountService extends IService<PddAccount> {
    
    /**
     * 分页查询
     * @Description:  
     * @author daigb 
     * @param @param request
     * @param @return
     * @return PageInfo<StoreBrandResponse>
     * @throws
     */
    PageInfo<PddAccountResponse> pageEntity(PageParamRequest pageParamRequest, Integer merId);
    
    /**
     * 新增或修改
     * @author daigb
     * @date:  2022-11-18 09:45
     */
    Boolean saveOrUpdateEntity(PddAccountRequest pddAccountRequest, Integer merId);
    
    /**
     * 删除
     * @author daigb
     * @date:  2022-11-18 09:45
     */
    Boolean delEntity(Integer id, Integer merId);
    
    /**
     * 拼多多授权回调
     * @author daigb
     * @date:  2022-11-28 15:24
     */
    Boolean notifyAccount(String state, String code);
    
    /**
     * 获取店铺可发布类目信息, 首页cateId传0
     * @author daigb
     * @throws Exception 
     * @date:  2022-11-28 15:36
     */
    PddGoodsAuthorizationCatsResponse goodsAuthorizationCats(Integer merId, Long cateId) throws Exception;
    
    /**
     * 获取类目发布规则
     * @author daigb
     * @throws Exception 
     * @date:  2022-11-28 15:36
     */
    PddGoodsCatRuleGetResponse goodsCatRule(Integer merId, Long cateId) throws Exception;
    
    /**
     * 商品国家获取
     * @author daigb
     * @throws Exception 
     * @date:  2022-11-28 15:36
     */
    PddGoodsCountryGetResponse goodsCountry(Integer merId) throws Exception;
    
    /**
     * 运费模板获取
     * @author daigb
     * @throws Exception 
     * @date:  2022-11-28 15:36
     */
    PddGoodsLogisticsTemplateGetResponse goodsLogisticsTemplate(Integer merId) throws Exception;
    
    /**
     * 类目规则属性获取
     * @author daigb
     * @throws Exception 
     * @date:  2022-11-28 15:36
     */
    PddGoodsSpecGetResponse goodsSpec(Long cateId, Integer merId) throws Exception;
    
    /**
     * 类目规则新增
     * @author daigb
     * @throws Exception 
     * @date:  2022-11-28 15:36
     */
    PddGoodsSpecIdGetResponse goodsSpecId(Long specId, String specName, Integer merId) throws Exception;
    
    /**
     * 商品推送
     * @author daigb
     * @throws Exception 
     * @date:  2022-11-28 15:36
     */
    Boolean goodsPush(SyPddGoodsAddRequest syPddGoodsAddRequest, Integer merId) throws Exception;
    
    /**
     * 已推送商品库存全量更新(job任务方法)
     * @author daigb
     * @date:  2022-12-06 16:31
     */
    void goodsStockJobUpdate() throws Exception;

}